﻿using System.Diagnostics;

namespace 
{/// <summary>
/// 求最大素数
/// </summary>
    internal class Program
    {
        const int totalNumber = 10000;
        static void Main(string[] args)
        {
            //设置一个秒表并开始计时
            Stopwatch sw = new Stopwatch();
            sw.Start();
            int maxNumber = 0;
            //从最大的数往下遍历，找到的第一个素数即为最大素数
            for (int x = totalNumber; x > 0; x--)
            {
                bool judge = true;
                //由素数的定义，一个非素数n的两个因数分布在0到根号n和根号n到n之间，由此可把循环次数减少到根号n
                for (int i = 2; i < Math.Sqrt(x); i++)
                {
                    if (x % i == 0)
                    {
                        judge = false;
                    }
                }

                //找到一个最大素数就可以跳出循环
                if (judge == true)
                {
                    maxNumber = x;
                    break;
                }

            }
            //停止计时并输出时间
            sw.Stop();
            //把总时长赋值给ts
            TimeSpan ts = sw.Elapsed;
            double timeConsuming = ts.TotalSeconds;
            Console.WriteLine($"最大素数为{maxNumber}");
            Console.WriteLine($"耗时{timeConsuming}秒");

        }
    }
}